// components/like/like.js
Component({
  /**
   * 组件的属性列表
   * 外部通过这些属性传递值进来
   * 组件内取值：比如 this.properties.likeStatus 也可以用 this.data.likeStatus 取值
   */
  properties: {
    likeStatus: {
      type: Boolean, // 值类型
      value: false, // 默认值
      observer: function(newVal, oldVal) {
        // 属性值变化时执行

      }
    },
    count: {
      type: Number,
      value: 0
    }
  },

  /**
   * 组件的初始数据
   * 组件内取值：比如 this.data.likeStatus
   */
  data: {
    // likeStatus: true,
    // count: 322,
    yesSrc: 'images/like.png',
    noSrc: 'images/like@dis.png'
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 点击事件 喜欢/不喜欢
     * @param {*} e 
     */
    onLike: function(e) {
      const like = this.properties.likeStatus
      const count = this.properties.count
      // 更新新data数据
      this.setData({
        likeStatus: !like,
        count: !like ? count + 1 : count - 1
      })

      // 是 点赞 还是 取消点赞
      let behavior = this.properties.likeStatus ? 'like' : 'cancel'
      // 自定义事件
      this.triggerEvent('like', {
        // 事件传递的数据
        behavior: behavior
      }, {})
    }
  }
})
